package com.yugao.fintech.vctgone.admin.pojo.vo;

import cn.hutool.core.date.DateTime;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;

@Schema(title = "客户端")
@Data
public class RegisteredClientVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 2206495955265453571L;

    @Schema(description = "标识")
    private Long id;

    @Schema(description = "客户端 ID")
    private String clientId;

    @Schema(description = "客户端密码过期时间")
    private DateTime clientSecretExpiresAt;

    @Schema(description = "客户端名称")
    private String clientName;

    @Schema(description = "客户端认证方式（client_secret_basic，client_secret_post，private_key_jwt，client_secret_jwt，none）")
    private String clientAuthenticationMethods;

    @Schema(description = "授权类型（authorization_code,client_credentials,refresh_token,password）")
    private String authorizationGrantTypes;

    @Schema(description = "重定向 URI")
    private String redirectUris;

    @Schema(description = "SCOPE")
    private String scopes;

    @Schema(description = "是否要求授权许可（1:=是；0:=否）")
    private Integer requireAuthorizationConsent;

    @Schema(description = "访问令牌有效期（单位：s）")
    private Integer accessTokenTimeToLive;

    @Schema(description = "访问令牌格式（self-contained, reference）")
    private String accessTokenFormat;

    @Schema(description = "刷新令牌有效期（单位：s）")
    private Integer refreshTokenTimeToLive;
}
